In order to further an understanding of the present invention, a description is given first of the conventional technology for the Web. Amid the rapid development of the Internet and the proliferation of Web servers, “Web-based” business processing is being propelled forward. A Web server can support HTTP (Hyper Text Transfer Protocol) and FTP (File Transfer Protocol) and the like, specify a computer or the like connected to a network, and, in response to a request, transmit, to a client on the network, a document data file or the like specified by a URL (Uniform Resource Locator) and written in HTML (Hyper Text Markup Language). A client computer, such as a personal computer or the like, then executes an application program called a Web browser having the ability to display the data (the HTML document) written in HTML and displays the HTML document received from the Web server. Usually, the Web browser (hereinafter called simply a “browser”) is equipped with the ability not only simply to display the HTML document but also, in accordance with the HTML description, to input data on a display screen and to send that input data back to the Web server. It should be noted that “Web-based” refers to the ability to specify a URL from the client and to exchange data with the server.
In a Web-based business system, a browser that can display and input data is installed in the client computer, and an operator executes such business processes as display and input of the browser as a user interface. In this case, information input from the client browser is accepted by the Web server, the Web server or another server that is connected to the Web server processes the information, and information showing the result obtained is then transmitted back to the client browser. At the client, operations such as displaying the information received from the server and the like are carried out as necessary. Thus, business is conducted by a procedure like the foregoing, and the operator can obtain results (information).
As described above, when data such as a document or an image is transferred to the Web browser from the server, a file such as these data files and the like are placed in a particular directory (indicating a document route in HTTP terminology, hereinafter called a “directory”) in the Web server file system that can be accessed from the client. If the client requests that file, the URL for that file is transferred to the client. At the client, if the URL is specified and an FTP or the like used, processing is carried out on the server and the desired file is transmitted to the client.
As one type of information processing by the server, a conversion from an application file created using an application program for creating documents, charts, images, figures and the like to an intermediate format file (an intermediate file) such as a PDF file or the like is known (for example, see Japanese Laid-Open Patent Publication No. 2000-284937). When the intermediate file obtained as a result of that conversion is reproduced, sometimes character rendering does not go as planned due to differences in the font environments of the client and the server. It should be noted that reproduction of the intermediate file means reproducing a document from an intermediate file by displaying or printing the document that comprises the content of the intermediate file. In addition, the font environment includes, in the operating system that manages the resources of the computer, the type of language managed as one resource and the types of font that can be used by the computer. The operating system language is English if, for example, the operating system is an English language version, or Japanese if the operating system is a Japanese language version. It is possible to switch languages depending on the operating system type, but even in that case, typically, a fixed language is specified.
The intermediate file contains rendering commands that describe the objects that form the document and the operands that indicate the positions, sizes and so forth of the objects. Broadly, the rendering commands can usually be divided into three main types, depending on the type of object: Rendering commands related to characters that output characters, rendering commands related to images that output bitmap images and the like, and rendering commands related to graphics that output such figures as lines, circles, squares and the like.
A description is now given of the rendering commands related to characters of Microsoft Corporation's Windows (registered trademark) operating system. FIG. 3 is a schematic diagram showing information required for character rendering. Although FIG. 3 shows but one example, generally, the character rendering commands require the following four types of font information as operands:
(1) Character Code 301:
Information that identifies the character. Uses character codes in accordance with previously determined code systems such as ASCII, ShiftJIS, Unicode, etc.
(2) Font Attributes 302:
Includes such information as font face names suitable for character rendering, whether there is an italic/bold instruction indicating modification of a glyph, the number of points indicating the size of the characters, and so forth.
(3) Rendering Attributes 303:
Includes information indicting the rendering position of the character, its color, clip condition, etc.
(4) Font Form Information 304:
Includes information indicating the character rendering shape specified by such face names as Gothic, Mincho and the like. Has a glyph for each character. Two main types of font information formats, bitmap font and outline font, defining a variety of formats such as TrueType (registered trademark), OPENTYPE (registered trademark) and so forth.
Unless all of the foregoing information is in good order, character rendering will not take place as the user intends. Ordinarily, the character rendering data in the intermediate file includes character rendering commands using the three types of font information described above, that is, character code, font attributes and rendering attributes. Then, usually, when executing character rendering on a computer or the like, that is, when reproducing the intermediate file, based on the font face name included in the character rendering commands, the computer checks the font form information for the same font face name that the OS (Operating System) that manages the computer has, and renders the character.
However, the specified font form information is not always present in all computer environments (it can also be said to be a resource that is provided by the OS). In other words, it is also possible that the font form information present in the computer environment in which the user creates the intermediate file (called the intermediate file creation environment) is not present in the computer environment in which character rendering is carried out (called the character rendering execution environment). If the font desired by a user who has created application data does not exist in the computer environment in which character rendering is carried out, then three techniques conventionally are known for carrying out character rendering using the font that the user desires or in a font of a form close to the desired font, namely, font substitution, bitmap substitution and font embedding. The following is a description of each of these three techniques with reference to FIG. 4, which is a diagram showing rendering results in cases in which each of these techniques is used.
(1. Font Substitution)
Font substation is a method in which, in the character rendering execution environment, rendering is carried out using a different font that resembles the font attributes in the character rendering data (intermediate file). Common methods of designating the different font are a method that uses a conversion table in which the application that carries out the character rendering is predefined and a method that uses a conversion table in which the OS is predefined. During character rendering data creation, the normal character rendering commands (character code, font attributes, rendering attributes) are created, but because the largest data size font form information is not required, this method has the advantage that the character rendering data size is small. On the other hand, a drawback of this method is that, because a different font is used, there is a possibility that character rendering of a form completely different from that which the user desires may be carried out, as shown by character pattern 401 in FIG. 4. Where the font that corresponds to the desired character code does not exist in the character rendering execution environment, rendering in which the output is not recognizable as a character might be carried out. For example, ordinarily, a Japanese language font does not exist in the computer environments used in the United States and Europe. Accordingly, if an intermediate file is created under a typical Japanese-capable OS and that intermediate file is then reproduced in a typical U.S. or European character rendering execution environment, for example under an English-capable OS, the font that corresponds to the character code in the intermediate file creation environment does not exist in the character rendering execution environment, and as a result, rendering of an unidentifiable character is carried out.
(2. Bitmap Substitution)
Bitmap substitution is a method in which the character is converted into a bitmap at the time the character rendering data (intermediate file) is created, and the character rendering is converted into a bitmap rendering. To the ordinary observer, the output is the same as the character rendering desired by the user. However, because it is a bitmap, as shown by character pattern 402 in FIG. 4 the quality of the character may be adversely affected by the resolution of the bitmap during enlargement and reduction.
(3. Font Embedding)
Font embedding is a method in which, in addition to the character rendering commands (character code, font attributes, rendering attributes), font form information is embedded in the character rendering data (intermediate file) and the font form information used by the character rendering data is imported into the character rendering execution environment. The font form information embedded on the character rendering data, in the character rendering execution environment, is registered as a font provided by that environment, and the character rendering data is character rendered using that font. Accordingly, font embedding has the advantage of begin able to obtain the output desired by the user even if the font specified by the character rendering commands in the character rendering data does not exist in the character rendering execution environment. However, because the font form information is embedded in the character rendering data, the character rendering data size tends to grow large. This problem becomes particularly acute when embedding fonts with many character types, such as the Japanese language font.
Of the three techniques described above, (1) font substitution is a process conducted in the character rendering execution environment. By contrast, (2) bitmap substitution and (3) font embedding are processes conducted during character rendering data creation. In addition, which of these three techniques is used typically is determined by a user on the character rendering data creation side specifying the technique for each font on, for example a user interface (hereinafter “UI”).
Of the three techniques described above, it is preferable to use (3) font embedding in order to render faithfully in the character rendering execution environment the font desired by the user on the character rendering data creation side. This is because (3) font embedding, as described above, registers the embedded font information in the character rendering execution environment prior to character rendering, and thus securely renders characters in a format desired by the user on the character rendering data creation side.
In order to render faithfully the font desired by the character rendering data creation side user in the character rendering execution environment, it is preferable to use font embedding in the character rendering data. However, a problem with embedding the font in the character rendering data is that the character rendering data size increases. That is, from the standpoint of data size, it can be said to be preferable to embed only the fonts that are used in the character rendering data and that moreover do not exist in the character rendering execution environment, without embedding the fonts that do exist in the character rendering execution environment. In order to accomplish that, it is necessary for the character rendering data creation side user to know in advance which fonts are contained in the character rendering execution environment. However, determining which fonts should be embedded from among the many existing types of fonts imposes a heavy burden on the user who creates character rendering data.
In addition, which of the three techniques described above to use is ordinarily determined for each font when converting, using, for example, a user interface (UI) of a program that executes the conversion. However, the very act of the user on the character rendering data creation side specifying which of the fonts should be embedded from among the many different types of fonts itself imposes a heavy burden on the creation side. This problem becomes particularly acute when the font environment in which the character rendering data is created and the font environment in which the character rendering is carried out are very different.
In addition, it can happen that, even after embedding a character font, when it comes time to execute character rendering, the font specified by the character rendering commands in the character rendering data does not exist in the character rendering execution environment. In a case such as this, the computer that reproduced the intermediate file carries out the (1) font substitution described above. However, as described above, due to font substitution, a character of a form different from that intended when the original data was created may sometimes be reproduced. Consequently, in order to reproduce the intermediate file faithfully and as intended in the character rendering execution environment, an ability to obtain the font environment of the computer that is to execute the character rendering and automatically determine the font to be embedded in the character rendering execution environment is desirable.